home *** CD-ROM | disk | FTP | other *** search
- Kryptograficzny System Plik≤w pod Linuxem - Jak To Zrobiµ
- Autor: Alexander O. Yuriev, alex@bach.cis.temple.edu
- Wersja polska: Krzysztof G. Baranowski KGB@rubikon.net.pl
- v1.1 12 Maja 1997
-
-
- W dokumencie opisano jak skompilowaµ, zainstalowaµ i ustawiµ Kryp¡
- tograficzny System Plik≤w (zwany dalej CFS - przyp. t│umacza), kt≤ry
- zosta│ napisany przez Matta Blaze z AT&T, pod Linuxa.
-
- 1. Wprowadzenie
-
-
- NastΩpuj▒ce o╢wiadczenie skopiowane zosta│o bezpo╢rednio z CFS 1.12 i
- opisuje zastrze┐enia co do u┐ywania CFS.
-
- ╖ Autorem tego oprogramowania jest Matt Blaze.
-
- ╖ Copyright (c) 1992, 1993, 1994 by AT&T.
-
- ╖ Zezwala siΩ u┐ywaµ, kopiowaµ i modyfikowaµ niniejsze oprogramowanie
- bez ┐adnych op│at, pod warunkiem, ┐e zostanie do│▒czona do
- wszystkich kopii oprogramowania pe│na dokumentacja, uwagi i
- ostrze┐enia autora.
-
- ╖ To oprogramowanie podlega kotroli eksportu ze Stan≤w Zjednoczonych.
-
- ╖ Nie wolno eksportowaµ go, w czΩ╢ci lub w ca│o╢ci, albo pomagaµ w
- eksporcie, bez zgody rz▒du USA i pisemnego zezwolenia od AT&T. W
- szczeg≤lno╢ci nie wolno udostΩpniaµ ┐adnej czΩ╢ci tego
- oprogramowania i jego nieograniczonych dystrybucji innym osobom,
- ni┐ obywatele USA i Kanady.
-
- ╖ To oprogramowanie jest dostarczane "Takie jakie jest", bez ┐adnej
- gwarancji i ani autorzy, ani AT&T nie udzielaj▒ ┐adnej gwarancji
- jakiegokolwiek rodzaju dotycz▒cej dopasowania oprogramowania do
- jakichkolwiek potrzeb.
-
- ╖ Pomimo, ┐e informacje w tym dokumencie uwa┐a siΩ za poprawne, ani
- autor, ani Laboratoria CIS, ani Uniwersytet Temple nie udzielaj▒
- ┐adnych gwarancji i nie s▒ odpowiedzialni za to, co siΩ stanie
- kiedy bΩdziesz stosowa│ siΩ do niniejszego instrukta┐u. Informacja
- zawarta w tym dokumencie jest udostΩpniana, taka jaka jest.
-
-
- 2. O CFS
-
-
- CFS umo┐liwia niezale┐ne od aplikacji szyfrowanie/deszyfrowanie danych
- na pow│oce struktury plik≤w i nie wymaga modyfikacji kodu istniej▒cego
- ju┐ systemu plik≤w, ani ┐adnych modyfikacji j▒dra systemu. Symetryczne
- szyfrowanie zawarte w g│≤wnym strumieniu CFS bazuje na zmodyfikowanym
- standardzie DES pracuj▒cym w trybie CBC, kt≤ry czyni brutalny atak
- przeciwko 56-bitowemu kluczowi DES prawie niemo┐liwym. Struktura CFS
- zastΩpuje g│≤wny strumie± DES, szyfrem Fast-DES albo jakimkolwiek
- innym szyfrem, w doskona│y, bezpo╢redni spos≤b. Gdyby╢ by│
- zainteresowany przeczytaj Bia│▒ stronΩ o CFS
- <ftp://bach.cis.temple.edu/pub/Papers/cfs.ps>.
-
-
- 3. KOMPILACJA I INSTALACJA CFS.
-
-
- CFS nie skompiluje siΩ "samo" pod Linuxem. Pod▒┐aj za niniejszymi
- instrukcjami, je╢li chcesz uruchomiµ CFS na swoim Linuxie. Jest kilka
- metod osi▒gniΩcia tego celu, ale najprostsza bazuje na modyfikacjach
- przeprowadzonych przez Olafa Kircha. Jego wersja CFS jest dostΩpna z:
- ftp.mathematic.th-darmstadt.de <ftp://ftp.mathematik.th-
- darmstadt.de/pub/linux/okir/cfs-1.1.2.tar.gz>.
-
- Olaf podpisa│ zmodyfikowane archiwum. Podpis PGP dla zmodyfikowanej
- wersji cfs-1.1.2 mo┐na otrzymaµ z: ftp.mathematic.th-darmstadt.de
- <ftp://ftp.mathematik.th-darmstadt.de/pub/linux/okir/>.
-
- W trybie jednego u┐ytkownika, skompiluj cfs za pomoca komendy "make".
- (przeczytaj najpierw odpowiednie pliki, tzn. README, Changes itp. -
- przyp. autora). Po kompilacji, zainstaluj: cfsd, cdetach, ccat,
- cmkdir, cname i cattach do katalogu /usr/local/sbin - w│a╢cicielem
- tych plikow niech bΩdzie root, a grupa, do kt≤rej musz▒ one nale┐eµ to
- wheel. Nadaj plikom atrybuty 551.
-
- Dla bezpiecze±stwa mo┐na wygenerowaµ sumy kontrolne MD5, na czystych
- binariach. NastΩpnie skopiuj te pliki razem z "md5sum", na media takie
- jak p│yta CD, albo dyskietka i zabezpiecz j▒ przed zapisem.
-
- Utw≤rz katalog /.cfsfs, kt≤ry bΩdzie u┐ywany przez serwer CFS. Niech
- w│a╢cicielem katalogu bΩdzie root, grupa root, a jego atrybuty niech
- wynosz▒: 000. Utw≤rz katalog /securefs, ktory stanie siΩ korzeniem
- drzewa Kryptograficznego Systemu Plik≤w.
-
- Dodaj nastepuj▒c▒ liniΩ do /etc/rc.d/rc.local:
-
-
- echo -n "Inicjacja Kryptograficznego Systemu Plik≤w: "
- if [ -x /usr/local/sbin/cfsd ]; then
- /usr/local/sbin/cfsd > /dev/null
- echo -n "cfsd "
- /bin/mount -o
- port=3049,intr localhost:/.cfsfs /securefs
- echo -n "loopback"
- echo "done"
- else
- echo "Nie zainstalowano poprawnie Kryptograficznego System Plik≤w"
- fi
-
-
-
- U┐ytkownicy Red Hata powinni dodaµ plik "cfsfs", kt≤ry znajduje siΩ na
- ko±cu tego dokumentu do katalogu /etc/rc.d/init.d. NastΩpnie utworzyµ
- do│▒czenie symboliczne "S65cfsfs" i umie╢ciµ go w odpowiednim katalogu
- startowym, np. rc3.d u┐ywaj▒c komendy:
-
- ln -s /etc/rc.d/init.d/cfsfs S65cfsfs
-
-
-
- we w│a╢ciwym katalogu startowym. NastΩpnie nale┐y dodaµ liniΩ:
-
-
- /.cfsfs localhost
-
-
-
- w pliku /etc/exports. Na ko±cu dodaj liniΩ:
-
-
- portmap: 127.0.0.1
-
-
-
- do pliku /etc/hosts.allow.
-
- Teraz powiniene╢ zrestartowaµ komputer. Po jego uruchomieniu, u┐yj
- komendy mount ┐eby sprawdziµ, czy CFS pracuje. Je╢li wszystko
- zadzia│a│o, powiniene╢ zobaczyµ now▒ nastΩpuj▒c▒ liniΩ po wykonaniu
- komendy mount.
-
-
- localhost:/.cfsfs on /securefs type nfs(rw,port=3049,intr,addr=127.0.0.1)
-
-
-
-
- 4. TWORZENIE KATALOGU CFS
-
-
- »eby utworzyµ szyfrowany katalog o nazwie "sekret" u┐yj komendy:
-
-
- cmkdir sekret
-
-
-
- Zostaniesz poproszony o podanie i zweryfikowanie has│a. Je┐eli to sie
- uda, utworzony zostanie katalog "sekret", kt≤ry pojawi sie w bie┐▒cym
- katalogu. Katalog ten bΩdzie zawiera│ zaszyfrowane dane, kt≤re bΩdzie
- mo┐na normalnie przegl▒daµ pod warunkiem, ┐e do│▒czymy ten katalog do
- drzewa CFS.
-
- »eby mo┐na by│o swobodnie korzystaµ z informacji zawartych w katalogu,
- trzeba do│▒czyµ go do drzewa katalog≤w zarz▒dzanych przez CFS za
- pomoca komendy:
-
-
- cattach sekret Tajne
-
-
-
- CFS poprosi CiΩ o podanie has│a dostΩpu. Je┐eli bΩdzie siΩ ono
- zgadza│o z has│em podanym przy tworzeniu katalogu "sekret", dane
- zawarte w tym katalogu bΩd▒ dostΩpne w niezakodowanej formie w
- /securefs/Tajne, TYLKO dla u┐ytkownika, kt≤ry poda│ w│a╢ciwe has│o
- dostΩpu. (nawet root nie mo┐e odczytaµ tych plik≤w ;-) - przyp.
- t│umacza)
-
- Zauwa┐, ┐e do│▒czenie katalogu do drzewa CFS, mo┐e zaj▒µ nawet minutΩ.
- (u mnie na P133/16MB RAM zajmuje nie wiΩcej ni┐ 5 sekund). Od tej pory
- mo┐emy korzystaµ z katalogu /securefs/Tajne jak z ka┐dego innego
- katalogu.
-
- Kiedy sko±czymy pracΩ powinni╢my u┐yµ komendy:
-
-
- cdetach Tajne
-
-
-
- ┐eby uniemo┐liwiµ dostΩp do danych. Komenda ta usuwa katalog "sekret"
- z listy katalog≤w zarz▒dzanych przez CFS, co uniemo┐liwia odczytanie
- informacji w tym katalogu, gdy┐ s▒ one zakodowane. Aby znowu umo┐liwiµ
- sobie dostΩp do danych nale┐y u┐yµ komendy "cattach".
-
-
- 5. OCHRONA CFS
-
-
- Aby umo┐liwiµ u┐ytkownikom dostΩp do zaszyfrowanych danych, CFS wymaga
- od u┐ytkownika has│a, kt≤re jest u┐ywane do wygenerowania zestaw≤w
- kluczy.
-
- Zdobycie has│a przez niepowo│ane osoby pozwala intruzom odczytaµ
- zaszyfrowane dane, dlatego jest niezwykle wa┐ne, aby u┐ytkownik we
- w│asnym interesie chroni│ has│o dostΩpu. Istniej▒ dwie mo┐liwo╢ci
- zdobycia Twojego has│a przez intruz≤w:
-
-
- 1. Sniffing
-
- 2. Atak przeciwko protoko│owi.
-
- Informacje zawarte poni┐ej mog▒ zostaµ u┐yte, aby zmniejszyµ
- prawdopodobie±stwo skutecznego ataku przeciwko CFS.
-
-
- 1. Upewnij siΩ, ┐e binaria CFS s▒ oryginalne:
-
-
- a. upewnij siΩ, ┐e: cattach, ccat, cmkdir, cname, cfsd i cdetach
- nie zosta│y zast▒pione "koniami troja±skimi", kt≤re zapisuj▒
- has│a dostΩpu,
-
- b. upewnij siΩ, ┐e CFS serwer (cfsd), nie zosta│ w jaki╢ spos≤b
- zmodyfikowany i ┐e szyfruje dane poprawnie,
-
- c. atak przeciwko "cdetach" zazwyczaj wymaga ma│ej modyfikacji
- kodu, kt≤ra chroni klucze dostΩpu przed zniszczeniem i pozwala
- intruzowi uzyskaµ kontrolΩ nad zakodowanymi danymi. Najprostszym
- sposobem na upewnienie siΩ, ze binaria nie zosta│y podmienione,
- jest zlinkowanie ich statycznie i umieszczenie na p│ycie CD.
- Inny spos≤b, to zlinkowanie statyczne, wygenerowanie sum
- kontrolnych za pomoc▒ programu MD5 i umieszczenie ich na
- dyskietce zabezpieczonej przed zapisem. Przed u┐yciem CFS w
- systemie, zamountuj dyskietkΩ i sprawd╝ czy sumy kontrolne
- zgadzaj▒ siΩ; w razie potrzeby zastΩpuj▒c podmienione programy
- ich oryginalnymi wersjami.
-
-
- 2. Uwa┐aj na programy zapisuj▒ce do pliku dane wpisywane z klawiatury,
- tzw. keyboard grabbers i zawsze stosuj siΩ do poni┐szych zasad:
-
-
- a. kiedy wpisujesz has│o w oknie xterm-a, upewnij siΩ, ┐e xterm
- jest oryginalny i u┐ywaj bezpiecznej klawiatury "Secure
- keyboard". To uniemo┐liwi przechwycenie has│a przez wy┐ej
- opisane programy,
-
- b. wpisuj has│a do terminali przy│▒czonych bezpo╢rednio do port≤w
- szeregowych systemu, gdy s▒ one dostΩpne,
-
- c. upewnij siΩ, ┐e konsole (pty i tty) s▒ ustawione tak, aby
- uniemo┐liwiµ innym odczytanie twojego has│a.
-
-
- 3. Nigdy nie wpisuj has│a poprzez sieµ, nawet je╢li znajduje siΩ ona
- za firewallem i wiesz, ┐e nikt pod│▒czony do sieci nie u┐ywa
- sniffera. Tyczy siΩ to tak┐e sieci u┐ywaj▒cych, tzw. scramble
- routers, poniewa┐ nie masz pewno╢ci, ze routery u┐ywaj▒ odpowiednio
- silnej enkrypcji, nie maj▒ "tylnych drzwi" albo innych dziur, kt≤re
- pozwoli│yby intruzowi pokonaµ enkrypcjΩ routera. Je┐eli jednak
- musisz podaµ has│o poprzez sieµ, r≤b to tylko zaszyfrowanym kana│em
- pomiΩdzy hostami. (najbardziej znany i popularny jest (ssh) secure
- shell - przyp. autora)
-
-
- 4. Zawsze u┐ywaj komendy cdetach, kiedy nie pracujesz z danymi. Nawet
- kiedy przerywasz pracΩ na kilka minut.
-
-
- 5.1. ZNANE PROBLEMY Z CFS
-
-
- W tym momencie jedyny znany problem, to komunikat "Permission denied",
- kiedy pr≤bujesz dostaµ siΩ do plik≤w na p│ycie CD.
-
-
- 6. PODZI╩KOWANIA
-
-
- Ni┐ej wymienieni ludzie przyczynili siΩ do powstania tego dokumentu:
- Topher Hughes z Dickinson College, Elie Rosenblum z Montgomery Blair
- High School, Mario D. Santana z Florida State University, Daniel P
- Zepeda i Olaf Kirch.
-
-
- ====================[pocz▒tek pliku cfsfs]======================
- #!/bin/sh
- #
- # $Header: /Secure/secure-doc/linux/CFS/RCS/CFS-Doc,v 1.
- 4 1996/03/15 04:49:37 alex Exp alex $
- #
- # cfsfs Kryptograficzny System Plik≤w
- #
- # Autor: Alexander O. Yuriev <alex@bach.cis.temple.edu>
- #
- # Derived from cron
- # Source function library.
-
- . /etc/rc.d/init.d/functions
-
- # See how we were called.
-
- case "$1" in
- start)
- echo -n "Uruchamianie Kryptograficznego Systemu Plik≤w: "
- if [ -x /usr/local/sbin/cfsd ]; then
- /usr/local/sbin/cfsd > /dev/null
- /bin/mount -o port=3049,intr localhost:/.cfsfs /securefs
- echo "done"
- else
- echo -n "Nie zainstalowano poprawnie Kryptograficznego Systemu Plik≤w"
- fi
- touch /var/lock/subsys/cfsfs
- ;;
- stop)
- echo -n "Zamykanie Kryptograficznego Systemu Plik≤w: "
- umount /securefs
- killproc cfsd
- echo
- rm -f /var/lock/subsys/cfsfs
- ;;
- *)
- echo "U┐ycie: cfsfs {start|stop}"
- exit 1
- esac
-
- exit 0
-
- ====================[koniec pliku cfsfs]======================
-
-
- 7. DODATEK A
-
-
- Jak najwygodniej pos│ugiwaµ siΩ CFS...
-
- Copyright (C) 1997 by Krzysztof G. Baranowski (KGB@rubikon.net.pl)
-
- Poniewa┐ ci▒g│e u┐ywanie komend "cattach","cdetach" i przechodzenie
- pomiΩdzy wieloma odleg│ymi od siebie katalogami mo┐e byµ na d│u┐sz▒
- metΩ mΩcz▒ce i mo┐e zniechΩciµ u┐ytkownika od u┐ywania CFS,
- postanowi│em napisaµ ten dodatek, w kt≤rym przedstawiΩ naprawdΩ bardzo
- proste porady, dziΩki kt≤rym bΩdzie mo┐na zhumanizowaµ pracΩ z CFS.
-
- A zatem zacznijmy od pocz▒tku. Najwygodniej jest utworzyµ w domowym
- katalogu u┐ytkownika ukryty katalog, w kt≤rym bΩdziemy trzymaµ
- wszystkie zakodowane pliki. Wi▒┐e siΩ to jednak z ryzykiem. Bo je┐eli
- kto╢ pozna nasze has│o dostΩpu to bΩdzie m≤g│ swobodnie manipulowaµ
- naszymi plikami.
-
- Z drugiej strony posiadanie wielu katalog≤w mo┐e przyprawiµ
- u┐ytkownika o b≤l g│owy, gdy┐ bΩdzie on musia│ zapamiΩtaµ ogromn▒
- ilo╢µ hase│. A minimalna d│ugo╢µ has│a dostΩpu do ka┐dego katalogu
- wynosi 16 (szesna╢cie) znak≤w. ;-)
-
- Pozosta±my wiΩc przy jednym katalogu. Zatem piszemy:
-
-
- /home/kris$ cmkdir .xfiles
-
-
-
- Zak│adam, ┐e u┐ytkownik ma login: kris, a jego katalog domowy to
- /home/kris i u┐ywa bash'a jako domy╢lnego shella. NastΩpnie CFS
- poprosi nas o has│o, kt≤re musi sk│adaµ siΩ przynajmniej z 16 znak≤w.
- Po weryfikacji has│a nasz tajny katalog ".xfiles" zostanie utworzony:
-
- NastΩpnie dopiszmy dwa aliasy do pliku ".bashrc":
-
-
- alias dekoduj='cattach /home/kris/.xfiles tajne'
- alias koduj='cdetach tajne'
-
-
-
- W tym przypadku katalog, w kt≤rym bΩdziemy mogli przegl▒daµ odkodowane
- pliki posiada nazwΩ "tajne", a jego scie┐ka dostΩpu to:
- /securefs/tajne.
-
- Oczywi╢cie nazwΩ mo┐emy sobie wybraµ dowoln▒. :-)
-
- NastΩpnie w naszym domowym katalogu utw≤rzmy do│▒czenie symboliczne do
- katalogu /securefs/tajne za pomoc▒ komendy:
-
-
- /home/kris$ ln -s /securefs/tajne tajne
-
-
-
- Wyb≤r nazwy do│▒czenia tak┐e zale┐y od u┐ytkownika. I to wszystko. Od
- tej pory u┐ywanie CFS staje siΩ dziecinnie proste.
-
- Je╢li chcemy dostaµ siΩ do naszego zakodowanego katalogu wpisujemy:
-
-
- /home/kris$ dekoduj
-
- i podajemy has│o. Komenda "cd tajne" od razu przenosi nas tam gdzie
- trzeba, gdzie mo┐emy buszowaµ sobie do woli :-), a "cd .." przenosi
- nas z powrotem do katalogu domowego. Proste i praktyczne. Po
- zako±czeniu pracy wpisujemy:
-
-
- /home/kris$ koduj
-
-
-
- I ju┐ nikt nie odczyta naszych danych, w│▒cznie z nami, chyba ┐e
- u┐yjemy jeszcze raz komendy "dekoduj".
-
- Na koniec ma│a uwaga. Kopiowanie, przenoszenie plik≤w, przechodzenie
- do katalog≤w bΩd▒cych pod kontrol▒ CFS mo┐e byµ trochΩ op≤╝nione.
- Zwi▒zane jest to z enkrypcj▒/dekrypcj▒ dokonywan▒ w czasie
- rzeczywistym. No to bawcie siΩ dobrze.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-